summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Setting.kt
blob: 11cd10a1e11f1a68b66ebf3027363843c83ecd8f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package org.yuzu.yuzu_emu.features.settings.model

/**
 * Abstraction for a setting item as read from / written to yuzu's configuration ini files.
 * These files generally consist of a key/value pair, though the type of value is ambiguous and
 * must be inferred at read-time. The type of value determines which child of this class is used
 * to represent the Setting.
 */
abstract class Setting(
    /**
     * @return The identifier used to write this setting to the ini file.
     */
    val key: String,
    /**
     * @return The name of the header under which this Setting should be written in the ini file.
     */
    val section: String
) {

    /**
     * @return A representation of this Setting's backing value converted to a String (e.g. for serialization).
     */
    abstract val valueAsString: String
}